<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<link rel="stylesheet" type="text/css" href="../../css/reset.css"/>
		<link rel="stylesheet" type="text/css" href="../../css/add.css"/>
		<link rel="stylesheet" type="text/css" href="/layer_mod.css"/>
	</head>
	<body>
		<div id="app">
			<div class="header">
				<span>修改快递信息</span>
			</div>
			<div class="content">
				<table>	
					<tr>
						<td class="text-right">运单号</td><td class="content_right"><input class="input inline-input" placeholder="请输入运单号码" id="ex_num"> <span class="btn btn-info" id="search">立即查找</span></td>
					</tr>
				</table>
			</div>


			<div class="header">
				<span>查找信息如下</span>
			</div>
			<div class="content">
				<table>
					<tr>
						<td class="text-right">快递单号</td><td class="content_right"><input class="input" placeholder="请输入快递单号"></td>
					</tr>
					<tr>
						<td class="text-right">快递公司</td><td class="content_right"><input class="input" placeholder="请输入快递公司"></td>
					</tr>
					<tr>
						<td class="text-right">收货人姓名</td><td class="content_right"><input class="input" placeholder="请输入收货人姓名"></td>
					</tr>
					<tr>
						<td class="text-right">手机号码</td><td class="content_right"><input class="input" placeholder="请输入手机号码"></td>
					</tr>
					<tr>
						<td class="text-right">快递状态</td><td class="content_right"><input type="radio" class="status" name="status" value="1">已取件  <input name="status" class="status" type="radio" value="0">未取件</td>
					</tr>
					<tr>
						<td></td><td class="content_right"><span class="btn btn-info" id="update">立即修改</span></td>
					</tr>
				</table>
			</div>
		</div>
	</body>
	<script src="/js/jquery-2.1.4.min.js"></script>
	<script src="/js/layer/layer.js"></script>
	<script src="/admin/ckeckAllInputs.js"></script>
	<script>
		// 在进行查询前隐藏页面上的快递信息部分
		$(".header:eq(1),.content:eq(1)").hide();
		// 存储查询到的快递的id，用于修改快递
		var expressID = null;
		// 存储查询到的快递的用户手机号，用于处理取件码和短信发送等问题
		var userphoneOld = null;
		var statusOld = null;
		$(function () {
			$("#search").click(function () {
				var ex_num = $("#ex_num").val();
				// 判断输入的单号是否符合格式要求
				if (ifExNumChecked(ex_num)) {
					var thisWindowID = layer.load(2);
					$.getJSON("/express/search.do",{ex_num:ex_num},function (data) {
						layer.close(thisWindowID);
						layer.msg(data.result);
						if (data.status == 0) {
							// 以淡入效果在1s内显示出页面上隐藏的快递信息
							// 以 http://localhost:8080/express/search.do?ex_num=124 查找到的data信息格式
							// {"status":0,"result":"查询成功","data":{"id":2,"ex_num":"124","username":"张三","userphone":"13843838438","company":"京东快递","code":"213456","intime":"Feb 28, 2021, 11:43:03 AM","status":0,"staffphone":"18888888888"}}
							$(".header:eq(1),.content:eq(1)").fadeIn(1000);
							expressID = data.data.id;
							userphoneOld = data.data.userphone;
							statusOld = data.data.status;
							$("input:eq(1)").val(data.data.ex_num);
							$("input:eq(2)").val(data.data.company);
							$("input:eq(3)").val(data.data.username);
							$("input:eq(4)").val(data.data.userphone);
							if (data.data.status == 0) {
								// 未签收
								$(".status:eq(1)").prop("checked",true);
							} else {
								// 已签收
								$(".status:eq(0)").prop("checked",true);
							}
						}
					});
				}
			});
			$("#update").click(function () {
				if (expressID==null) {
					layer.alert("无快递信息，无法进行修改，请先进行查询！",{icon:2,shade:0.05})
				} else {
					var ex_num = $("input:eq(1)").val();
					var company = $("input:eq(2)").val();
					var username = $("input:eq(3)").val();
					var userphone = $("input:eq(4)").val();
					var status = $(".status:checked").val();
					// 判断输入框输入内容是否符合格式要求
					if (ifAddExpressInputChecked(ex_num,company,username,userphone) && ifRadioValueChecked(status)) {
						var windowID = layer.load(2);
						// 禁止将快递信息从已取件更新为未取件
						if (statusOld==1 && status==0) {
							layer.close(windowID);
							layer.alert("不允许将快递状态从已取件直接更新为未取件！若确实存在取件环节的失误需要修改，请先删除该快递信息，再将其作为新快递录入(再入库)！", {icon:2,shade:0.05});
							$(".status:eq(0)").prop("checked",true);
							$(".status:eq(1)").prop("checked",false);
						} else {
							// 需要发送到服务器的json数据
							var ex_info = {
								id:expressID,
								ex_num:ex_num,
								company:company,
								username:username,
								status:status
							};
							// 如果输入的手机号码与查询到的不同，则加入userphone键值对
							// 这样设计才能在修改快递状态为已取件后在数据库正确录入信息
							// 否则手机号码不为空，将直接做删除并新添加并发送短信操作
							// 导致快递状态只能是未取件
							if (userphone != userphoneOld) {
								ex_info.userphone = userphone;
							}
							$.getJSON("/express/update.do",ex_info,function (data) {
								layer.close(windowID);
								if (data.status == 0) {
									// 修改成功
									if (data.result == null) {
										layer.msg("修改快递信息成功！",{icon:6,shade:0.05});
									} else {
										layer.alert("修改快递信息成功，但" + data.result, {icon:0,shade:0.05});
									}
									$(".header:eq(1),.content:eq(1)").hide();
								} else {
									// 修改失败
									layer.msg("修改快递信息失败，请检查输入的信息！",{icon:2,shade:0.05});
								}
							});
						}
					}
				}
			});
		});
	</script>
</html>
